This +3 disk formatter allows disks to be formatted with varying parameters
and gives capacity up to a maximum of 209K.  The BASIC program allows the
number of tracks, sectors, directory entries and reserved tracks to be
selected and the machine code then formats the disk with the given
parameters.

The program also allows the interleave and track skew factors to be changed.
The parameter "sector increment" gives the order in which sectors are
recorded by specifying the difference between each sector and the next.
For example, with 10 sectors on each track and an increment of 3, the
sectors will be numbered in the order 1, 4, 7, 10, 3, 6, 9, 2, 5, 8 for an
interleave factor of 7. The program takes care to avoid repetitions, so for
instance with 9 sectors and an increment of -3, the sectors will be recorded
in the order 1, 7, 4, 2, 8, 5, 3, 9, 6 for an interleave factor of about 3.
The "track increment" gives the difference between the number of the first
sector on one track and that on the next track.

If a disk is formatted with one or more reserved tracks, then the program
asks for a disk label.  This text will be recorded at the start of the last
reserved sector, where it can be read by the 48KDB "CAT *" command.  If the
disk should have no name, or you do not have 48KDB, just press enter.  A
disk may be relabelled with the "relabel" program.  This code should be
loaded in at 32000 and called.  It will ask for a name and then record
it on the disk.

A disk specifier will be recorded in the first 16 bytes of the disk, which
allows the +3 to auto-detect the disk type.  If the disk is formatted
without any reserved tracks, then the disk specifier will be recorded in
the first directory entry.  If you type "CAT EXP", this will appear as an
unprintable file name (which is in general harmless).

Note: This program should be run in +3 mode, not in 48KDB mode.

The zip file contains the program, "format.prg", the code, "format.bin",
and the relabeller, "relabel", all recorded in xzx save-file format.  That
format is as follows:

  bytes 0-3:  the characters "ZXF1"
  bytes 4-20: a Spectrum tape header
  bytes 21-:  the file's contents.

The data from each file can therefore be extracted by stripping off the
first 21 bytes.

